/**
 * <b>项目名：</b>hclv-web<br/>  
 * <b>包名：</b>com.flea.hclv.service.impl<br/>  
 * <b>文件名：</b>HHotelService.java<br/>  
 * <b>版本信息：</b>1.0<br/>  
 * <b>日期：</b>2018年9月12日 下午3:49:02<br/>  
 * <b>COPYRIGHT 2010-2012 ALL RIGHTS RESERVED 虫子科技</b>-版权所有<br/>
 */
package com.flea.hclv.service;

import javax.servlet.http.HttpServletRequest;

import com.alibaba.fastjson.JSONObject;
import com.flea.hclv.model.entity.HProduct;
import com.flea.hclv.model.entity.vo.ProductSearchVo;
import com.flea.hclv.util.ServerResponse;
import com.flea.system.bean.FleaPage;

import java.util.List;

/**
 * @description
 * @createTime 2018年9月12日 下午3:49:02
 * @modifyTime
 * @author myflea@163.com
 * @version 1.0
 */
public interface HProductService {
	
	public HProduct queryById(String id);

	public FleaPage<HProduct> findForGird(int curPage, int pageSize,String model,HttpServletRequest request);
	/**
	 * 创建产品，其中包含创建行程，班期内容和说明表中的内容
	 * @description
	 * @methodName save
	 * @param
	 * @returnType boolean   
	 * @throw
	 */
	public boolean save(String jsonObject, String userId) throws Exception;

	public ServerResponse<String> update(String jsonString, String userId) throws Exception;

	public ServerResponse<Boolean> delete(String ids, String userId) throws Exception;
	
	public JSONObject queryDetailById(String id);
	/**
	 * 
	 * @description 根据用户输入的条件，检索出几种产品，可进行分页也可以不进行分页
	 * @methodName queryDetailForSearch
	 * @param
	 * @returnType FleaPage<HProduct>   
	 * @throw
	 */
	public FleaPage<HProduct> queryDetailForSearch(ProductSearchVo pvo);
	/**
	 * 
	 * @description 根据用户输入的条件，检索出几种产品，可进行分页也可以不进行分页
	 * @methodName queryDetailForSearch
	 * @param
	 * @returnType FleaPage<HProduct>   
	 * @throw
	 */
	public FleaPage<HProduct> queryDetailForSearch(HttpServletRequest request,Integer curPage,Integer pageSize,ProductSearchVo pvo);
	/**
	 * 获取自己组织机构中的所有的产品，可进行修改，删除等操作
	 * @description
	 * @methodName queryDetailForSearchByOrgId
	 * @param
	 * @returnType FleaPage<HProduct>   
	 * @throw
	 */
	public FleaPage<HProduct> queryDetailForSearchByOrgId(HttpServletRequest request, Integer curPage,Integer pageSize,ProductSearchVo pvo);

    ServerResponse<List<HProduct>> findByDeptId(String deptUuid);
    /**
     * 产品上架
     * @description
     * @methodName updateToOnSale
     * @param
     * @throws Exception 
     * @returnType ServerResponse<Boolean>   
     * @throw
     */
	public ServerResponse<Boolean> updateToOnSale(String ids, String userId) throws Exception;
	/**
	 * 产品下架
	 * @description
	 * @methodName updateToOndown
	 * @param
	 * @throws Exception 
	 * @returnType ServerResponse<Boolean>   
	 * @throw
	 */
	public ServerResponse<Boolean> updateToOndown(String ids, String userId) throws Exception;
}
